package com.star.sync.elasticsearch.dto.torderinfo;

import com.star.sync.elasticsearch.annotation.EsDataMapping;
import com.star.sync.elasticsearch.execute.torderinfo.TOrderInfoExecute;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * t_wallet_change_log
 *
 * @author
 */
@Data
@EsDataMapping(indexName = "t_wallet_change_log", tableName = "t_wallet_change_log", type = "child")
public class TWalletChangeLog extends TOrderInfoExecute<TWalletChangeLog> {
    private Integer id;

    /**
     * 业务主键
     */
    private String uid;

    /**
     * 钱包id
     */
    private Integer walletId;

    /**
     * 关联P端/B端/C端ID
     */
    private Integer relEndId;

    /**
     * 钱包类别  冗余，枚举值，分别对应P端（承运方），B端（企业），C端（经纪人，车老板，司机，物流公司）；M18
     */
    private String walletType;

    /**
     * 交易类型  （企业）充值，（企业）支出，（企业）提现，（C端）提现，（承运方）提现；以上值为枚举；其中充值为+；支出，提现为-；支出有关联方，充值和提现无关联方。
     */
    private String tradeType;

    /**
     * 交易备注  交易的具体内容，例如：企业线下充值5万。司机自主提现1万。
     */
    private String memo;

    /**
     * 交易金额  交易的具体金额，带加减号表示。
     */
    private BigDecimal amount;

    /**
     * 交易时间  交易的具体时间
     */
    private Date tradeTime;

    /**
     * 银行卡联行号
     */
    private String bankUnionNo;

    /**
     * 银行卡号
     */
    private String bankNo;

    /**
     * 持卡人
     */
    private String cardHolder;

    /**
     * 银行卡类型
     */
    private String cardType;

    /**
     * 银行卡表ID
     */
    private Integer bankCardId;

    /**
     * 关联实体表来源
     */
    private String sourceTableName;

    /**
     * 关联交易实体ID
     */
    private Integer traderId;

    /**
     * 关联交易方钱包ID
     */
    private Integer traderWalletId;

    /**
     * 关联平台单据号
     */
    private String innerTradeNo;

    /**
     * 关联第三方单号  涉及到网商银行交易的需要记录对应的交易号
     */
    private String outerTradeNo;

    /**
     * 关联第三方返回时间
     */
    private Date gmtClose;

    /**
     * 钱包当前结转金额
     */
    private BigDecimal carryOverAmount;

    /**
     * 备注
     */
    private String remark;

    /**
     * 1 单笔支付  2打包支付
     */
    private String param1;

    private String param2;

    private String param3;

    private String param4;

    private String createUser;

    private Date createTime;

    private String updateUser;

    private Date updateTime;

    private Boolean enable;



    @Override
    public TWalletChangeLog update(TWalletChangeLog tWalletChangeLog) {
        return null;
    }

    @Override
    public TWalletChangeLog delete(TWalletChangeLog tWalletChangeLog) {
        return null;
    }
}